/* ====================================================================
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for Additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
==================================================================== */

namespace TestCases.HSSF.Record
{
    using System;
    using NUnit.Framework;
    using NPOI.HSSF.UserModel;
    using NPOI.SS.Formula.PTG;
    using NPOI.SS.UserModel;
    using NPOI.Util;
    using TestCases.HSSF.Record;
    using NPOI.HSSF.Record;

    /**
     * Tests the NameRecord Serializes/deserializes correctly
     * 
     * @author Danny Mui (dmui at apache dot org)
     */
    [TestFixture]
    public class TestNameRecord
    {

        /**
         * Makes sure that Additional name information is Parsed properly such as menu/description
         */
        [Test]
        public void TestFillExtras()
        {

            byte[] examples = HexRead.ReadFromString(""
                    + "88 03 67 06 07 00 00 00 00 00 00 23 00 00 00 4D "
                    + "61 63 72 6F 31 3A 01 00 00 00 11 00 00 4D 61 63 "
                    + "72 6F 20 72 65 63 6F 72 64 65 64 20 32 37 2D 53 "
                    + "65 70 2D 39 33 20 62 79 20 41 4C 4C 57 4F 52");

            NameRecord name = new NameRecord(TestcaseRecordInputStream.Create(NameRecord.sid, examples));
            String description = name.DescriptionText;
            Assert.IsNotNull(description);
            Assert.IsTrue(description.EndsWith("Macro recorded 27-Sep-93 by ALLWOR"));
        }
        [Test]
        public void TestReSerialize()
        {
            byte[] data = HexRead
                    .ReadFromString(""
                            + "20 00 00 01 0B 00 00 00 01 00 00 00 00 00 00 06 3B 00 00 00 00 02 00 00 00 09 00]");
            RecordInputStream in1 = TestcaseRecordInputStream.Create(NameRecord.sid, data);
            NameRecord nr = new NameRecord(in1);
            Assert.AreEqual(0x0020, nr.OptionFlag);
            byte[] data2 = nr.Serialize();
            TestcaseRecordInputStream.ConfirmRecordEncoding(NameRecord.sid, data, data2);
        }
        [Test]
        public void TestFormulaRelAbs_bug46174()
        {
            // perhaps this Testcase belongs on TestHSSFName
            IWorkbook wb = new HSSFWorkbook();
            IName name = wb.CreateName();
            wb.CreateSheet("Sheet1");
            name.NameName = (/*setter*/"test");
            name.RefersToFormula = (/*setter*/"Sheet1!$B$3");
            if (name.RefersToFormula.Equals("Sheet1!B3"))
            {
                throw new AssertionException("Identified bug 46174");
            }
            Assert.AreEqual("Sheet1!$B$3", name.RefersToFormula);
        }
        [Test]
        public void TestFormulaGeneral()
        {
            // perhaps this Testcase belongs on TestHSSFName
            IWorkbook wb = new HSSFWorkbook();
            IName name = wb.CreateName();
            wb.CreateSheet("Sheet1");
            name.NameName = (/*setter*/"test");
            name.RefersToFormula = (/*setter*/"Sheet1!A1+Sheet1!A2");
            Assert.AreEqual("Sheet1!A1+Sheet1!A2", name.RefersToFormula);
            name.RefersToFormula = (/*setter*/"5*6");
            Assert.AreEqual("5*6", name.RefersToFormula);
        }

        /**
         *  A NameRecord followed by a ContinueRecord. See Bugzilla 50244
         */
        [Test]
        public void Test50244()
        {
            String record_0x0018 =
                    "                                          18 00 " +
                    "21 1E 00 00 00 11 08 00 00 00 03 00 00 00 00 00 " +
                    "00 77 44 61 74 61 47 72 75 70 70 65 53 65 72 69 " +
                    "65 2E 60 00 B7 02 0C 00 57 03 00 B7 02 02 09 00 " +
                    "00 31 2E 54 32 30 2E 30 30 31 02 09 00 00 31 2E " +
                    "54 32 30 2E 30 30 31 02 09 00 00 31 2E 54 32 30 " +
                    "2E 30 30 31 02 09 00 00 31 2E 54 32 30 2E 30 30 " +
                    "32 02 09 00 00 31 2E 54 32 30 2E 30 30 32 02 09 " +
                    "00 00 31 2E 54 32 30 2E 30 30 32 02 09 00 00 31 " +
                    "2E 54 32 30 2E 30 30 33 02 09 00 00 31 2E 54 32 " +
                    "30 2E 30 30 33 02 09 00 00 31 2E 54 32 30 2E 30 " +
                    "30 33 02 09 00 00 31 2E 54 32 30 2E 30 31 33 02 " +
                    "09 00 00 31 2E 54 32 30 2E 30 31 33 02 09 00 00 " +
                    "31 2E 54 32 30 2E 30 31 33 02 09 00 00 31 2E 54 " +
                    "32 30 2E 30 31 34 02 09 00 00 31 2E 54 32 30 2E " +
                    "30 31 34 02 09 00 00 31 2E 54 32 30 2E 30 31 34 " +
                    "02 09 00 00 31 2E 54 32 30 2E 30 31 35 02 09 00 " +
                    "00 31 2E 54 32 30 2E 30 31 35 02 09 00 00 31 2E " +
                    "54 32 30 2E 30 31 35 02 09 00 00 31 2E 54 32 30 " +
                    "2E 30 32 35 02 09 00 00 31 2E 54 32 30 2E 30 32 " +
                    "35 02 09 00 00 31 2E 54 32 30 2E 30 32 35 02 09 " +
                    "00 00 31 2E 54 32 30 2E 30 32 36 02 09 00 00 31 " +
                    "2E 54 32 30 2E 30 32 36 02 09 00 00 31 2E 54 32 " +
                    "30 2E 30 32 36 02 09 00 00 31 2E 54 32 30 2E 30 " +
                    "32 37 02 09 00 00 31 2E 54 32 30 2E 30 32 37 02 " +
                    "09 00 00 31 2E 54 32 30 2E 30 32 37 02 09 00 00 " +
                    "31 2E 54 32 30 2E 30 33 37 02 09 00 00 31 2E 54 " +
                    "32 30 2E 30 33 37 02 09 00 00 31 2E 54 32 30 2E " +
                    "30 33 37 02 09 00 00 31 2E 54 32 30 2E 30 33 38 " +
                    "02 09 00 00 31 2E 54 32 30 2E 30 33 38 02 09 00 " +
                    "00 31 2E 54 32 30 2E 30 33 38 02 09 00 00 31 2E " +
                    "54 32 30 2E 30 33 39 02 09 00 00 31 2E 54 32 30 " +
                    "2E 30 33 39 02 09 00 00 31 2E 54 32 30 2E 30 33 " +
                    "39 02 09 00 00 31 2E 54 32 30 2E 30 34 39 02 09 " +
                    "00 00 31 2E 54 32 30 2E 30 34 39 02 09 00 00 31 " +
                    "2E 54 32 30 2E 30 34 39 02 09 00 00 31 2E 54 32 " +
                    "30 2E 30 35 30 02 09 00 00 31 2E 54 32 30 2E 30 " +
                    "35 30 02 09 00 00 31 2E 54 32 30 2E 30 35 30 02 " +
                    "09 00 00 31 2E 54 32 30 2E 30 35 31 02 09 00 00 " +
                    "31 2E 54 32 30 2E 30 35 31 02 09 00 00 31 2E 54 " +
                    "32 30 2E 30 35 31 02 09 00 00 31 2E 54 32 30 2E " +
                    "30 36 31 02 09 00 00 31 2E 54 32 30 2E 30 36 31 " +
                    "02 09 00 00 31 2E 54 32 30 2E 30 36 31 02 09 00 " +
                    "00 31 2E 54 32 30 2E 30 36 32 02 09 00 00 31 2E " +
                    "54 32 30 2E 30 36 32 02 09 00 00 31 2E 54 32 30 " +
                    "2E 30 36 32 02 09 00 00 31 2E 54 32 30 2E 30 36 " +
                    "33 02 09 00 00 31 2E 54 32 30 2E 30 36 33 02 09 " +
                    "00 00 31 2E 54 32 30 2E 30 36 33 02 09 00 00 31 " +
                    "2E 54 32 30 2E 30 37 33 02 09 00 00 31 2E 54 32 " +
                    "30 2E 30 37 33 02 09 00 00 31 2E 54 32 30 2E 30 " +
                    "37 33 02 09 00 00 31 2E 54 32 30 2E 30 37 34 02 " +
                    "09 00 00 31 2E 54 32 30 2E 30 37 34 02 09 00 00 " +
                    "31 2E 54 32 30 2E 30 37 34 02 09 00 00 31 2E 54 " +
                    "32 30 2E 30 37 35 02 09 00 00 31 2E 54 32 30 2E " +
                    "30 37 35 02 09 00 00 31 2E 54 32 30 2E 30 37 35 " +
                    "02 09 00 00 31 2E 54 32 30 2E 30 38 35 02 09 00 " +
                    "00 31 2E 54 32 30 2E 30 38 35 02 09 00 00 31 2E " +
                    "54 32 30 2E 30 38 35 02 09 00 00 31 2E 54 32 30 " +
                    "2E 30 38 36 02 09 00 00 31 2E 54 32 30 2E 30 38 " +
                    "36 02 09 00 00 31 2E 54 32 30 2E 30 38 36 02 09 " +
                    "00 00 31 2E 54 32 30 2E 30 38 37 02 09 00 00 31 " +
                    "2E 54 32 30 2E 30 38 37 02 09 00 00 31 2E 54 32 " +
                    "30 2E 30 38 37 02 09 00 00 31 2E 54 32 30 2E 30 " +
                    "39 37 02 09 00 00 31 2E 54 32 30 2E 30 39 37 02 " +
                    "09 00 00 31 2E 54 32 30 2E 30 39 37 02 09 00 00 " +
                    "31 2E 54 32 30 2E 30 39 38 02 09 00 00 31 2E 54 " +
                    "32 30 2E 30 39 38 02 09 00 00 31 2E 54 32 30 2E " +
                    "30 39 38 02 09 00 00 31 2E 54 32 30 2E 30 39 39 " +
                    "02 09 00 00 31 2E 54 32 30 2E 30 39 39 02 09 00 " +
                    "00 31 2E 54 32 30 2E 30 39 39 02 09 00 00 31 2E " +
                    "54 32 30 2E 31 30 39 02 09 00 00 31 2E 54 32 30 " +
                    "2E 31 30 39 02 09 00 00 31 2E 54 32 30 2E 31 30 " +
                    "39 02 09 00 00 31 2E 54 32 30 2E 31 31 30 02 09 " +
                    "00 00 31 2E 54 32 30 2E 31 31 30 02 09 00 00 31 " +
                    "2E 54 32 30 2E 31 31 30 02 09 00 00 31 2E 54 32 " +
                    "30 2E 31 31 31 02 09 00 00 31 2E 54 32 30 2E 31 " +
                    "31 31 02 09 00 00 31 2E 54 32 30 2E 31 31 31 02 " +
                    "09 00 00 31 2E 54 32 30 2E 31 32 31 02 09 00 00 " +
                    "31 2E 54 32 30 2E 31 32 31 02 09 00 00 31 2E 54 " +
                    "32 30 2E 31 32 31 02 09 00 00 31 2E 54 32 30 2E " +
                    "31 32 32 02 09 00 00 31 2E 54 32 30 2E 31 32 32 " +
                    "02 09 00 00 31 2E 54 32 30 2E 31 32 32 02 09 00 " +
                    "00 31 2E 54 32 30 2E 31 32 33 02 09 00 00 31 2E " +
                    "54 32 30 2E 31 32 33 02 09 00 00 31 2E 54 32 30 " +
                    "2E 31 32 33 02 09 00 00 31 2E 54 32 30 2E 31 33 " +
                    "33 02 09 00 00 31 2E 54 32 30 2E 31 33 33 02 09 " +
                    "00 00 31 2E 54 32 30 2E 31 33 33 02 09 00 00 31 " +
                    "2E 54 32 30 2E 31 33 34 02 09 00 00 31 2E 54 32 " +
                    "30 2E 31 33 34 02 09 00 00 31 2E 54 32 30 2E 31 " +
                    "33 34 02 09 00 00 31 2E 54 32 30 2E 31 33 35 02 " +
                    "09 00 00 31 2E 54 32 30 2E 31 33 35 02 09 00 00 " +
                    "31 2E 54 32 30 2E 31 33 35 02 09 00 00 31 2E 54 " +
                    "32 30 2E 31 34 35 02 09 00 00 31 2E 54 32 30 2E " +
                    "31 34 35 02 09 00 00 31 2E 54 32 30 2E 31 34 35 " +
                    "02 09 00 00 31 2E 54 32 30 2E 31 34 36 02 09 00 " +
                    "00 31 2E 54 32 30 2E 31 34 36 02 09 00 00 31 2E " +
                    "54 32 30 2E 31 34 36 02 09 00 00 31 2E 54 32 30 " +
                    "2E 31 34 37 02 09 00 00 31 2E 54 32 30 2E 31 34 " +
                    "37 02 09 00 00 31 2E 54 32 30 2E 31 34 37 02 09 " +
                    "00 00 31 2E 54 32 30 2E 31 35 37 02 09 00 00 31 " +
                    "2E 54 32 30 2E 31 35 37 02 09 00 00 31 2E 54 32 " +
                    "30 2E 31 35 37 02 09 00 00 31 2E 54 32 30 2E 31 " +
                    "35 38 02 09 00 00 31 2E 54 32 30 2E 31 35 38 02 " +
                    "09 00 00 31 2E 54 32 30 2E 31 35 38 02 09 00 00 " +
                    "31 2E 54 32 30 2E 31 35 39 02 09 00 00 31 2E 54 " +
                    "32 30 2E 31 35 39 02 09 00 00 31 2E 54 32 30 2E " +
                    "31 35 39 02 09 00 00 31 2E 54 32 30 2E 31 36 39 " +
                    "02 09 00 00 31 2E 54 32 30 2E 31 36 39 02 09 00 " +
                    "00 31 2E 54 32 30 2E 31 36 39 02 09 00 00 31 2E " +
                    "54 32 30 2E 31 37 30 02 09 00 00 31 2E 54 32 30 " +
                    "2E 31 37 30 02 09 00 00 31 2E 54 32 30 2E 31 37 " +
                    "30 02 09 00 00 31 2E 54 32 30 2E 31 37 31 02 09 " +
                    "00 00 31 2E 54 32 30 2E 31 37 31 02 09 00 00 31 " +
                    "2E 54 32 30 2E 31 37 31 02 09 00 00 31 2E 54 36 " +
                    "30 2E 30 30 39 02 09 00 00 31 2E 54 36 30 2E 30 " +
                    "30 39 02 09 00 00 31 2E 54 36 30 2E 30 30 39 02 " +
                    "09 00 00 31 2E 54 36 30 2E 30 31 30 02 09 00 00 " +
                    "31 2E 54 36 30 2E 30 31 30 02 09 00 00 31 2E 54 " +
                    "36 30 2E 30 31 30 02 09 00 00 31 2E 54 36 30 2E " +
                    "30 31 31 02 09 00 00 31 2E 54 36 30 2E 30 31 31 " +
                    "02 09 00 00 31 2E 54 36 30 2E 30 31 31 02 09 00 " +
                    "00 31 2E 54 36 30 2E 30 32 31 02 09 00 00 31 2E " +
                    "54 36 30 2E 30 32 31 02 09 00 00 31 2E 54 36 30 " +
                    "2E 30 32 31 02 09 00 00 31 2E 54 36 30 2E 30 32 " +
                    "32 02 09 00 00 31 2E 54 36 30 2E 30 32 32 02 09 " +
                    "00 00 31 2E 54 36 30 2E 30 32 32 02 09 00 00 31 " +
                    "2E 54 36 30 2E 30 32 33 02 09 00 00 31 2E 54 36 " +
                    "30 2E 30 32 33 02 09 00 00 31 2E 54 36 30 2E 30 " +
                    "32 33 02 09 00 00 31 2E 54 36 30 2E 30 33 33 02 " +
                    "09 00 00 31 2E 54 36 30 2E 30 33 33 02 09 00 00 " +
                    "31 2E 54 36 30 2E 30 33 33 02 09 00 00 31 2E 54 " +
                    "36 30 2E 30 33 34 02 09 00 00 31 2E 54 36 30 2E " +
                    "30 33 34 02 09 00 00 31 2E 54 36 30 2E 30 33 34 " +
                    "02 09 00 00 31 2E 54 36 30 2E 30 33 35 02 09 00 " +
                    "00 31 2E 54 36 30 2E 30 33 35 02 09 00 00 31 2E " +
                    "54 36 30 2E 30 33 35 02 09 00 00 31 2E 54 36 30 " +
                    "2E 30 34 35 02 09 00 00 31 2E 54 36 30 2E 30 34 " +
                    "35 02 09 00 00 31 2E 54 36 30 2E 30 34 35 02 09 " +
                    "00 00 31 2E 54 36 30 2E 30 34 36 02 09 00 00 31 " +
                    "2E 54 36 30 2E 30 34 36 02 09 00 00 31 2E 54 36 " +
                    "30 2E 30 34 36 02 09 00 00 31 2E 54 36 30 2E 30 " +
                    "34 37 02 09 00 00 31 2E 54 36 30 2E 30 34 37 02 " +
                    "09 00 00 31 2E 54 36 30 2E 30 34 37 02 09 00 00 " +
                    "31 2E 54 36 30 2E 30 35 37 02 09 00 00 31 2E 54 " +
                    "36 30 2E 30 35 37 02 09 00 00 31 2E 54 36 30 2E " +
                    "30 35 37 02 09 00 00 31 2E 54 36 30 2E 30 35 38 " +
                    "02 09 00 00 31 2E 54 36 30 2E 30 35 38 02 09 00 " +
                    "00 31 2E 54 36 30 2E 30 35 38 02 09 00 00 31 2E " +
                    "54 36 30 2E 30 35 39 02 09 00 00 31 2E 54 36 30 " +
                    "2E 30 35 39 02 09 00 00 31 2E 54 36 30 2E 30 35 " +
                    "39 02 09 00 00 31 2E 54 36 30 2E 30 36 30 02 09 " +
                    "00 00 31 2E 54 36 30 2E 30 36 30 02 09 00 00 31 " +
                    "2E 54 36 30 2E 30 36 30 02 09 00 00 31 2E 54 36 " +
                    "30 2E 30 35 30 02 09 00 00 31 2E 54 36 30 2E 30 " +
                    "35 30 02 09 00 00 31 2E 54 36 30 2E 30 35 30 02 " +
                    "09 00 00 31 2E 54 36 30 2E 30 34 39 02 09 00 00 " +
                    "31 2E 54 36 30 2E 30 34 39 02 09 00 00 31 2E 54 " +
                    "36 30 2E 30 34 39 02 09 00 00 31 2E 54 36 30 2E " +
                    "30 34 38 02 09 00 00 31 2E 54 36 30 2E 30 34 38 " +
                    "02 09 00 00 31 2E 54 36 30 2E 30 34 38 02 09 00 " +
                    "00 31 2E 54 36 30 2E 30 33 38 02 09 00 00 31 2E " +
                    "54 36 30 2E 30 33 38 02 09 00 00 31 2E 54 36 30 " +
                    "2E 30 33 38 02 09 00 00 31 2E 54 36 30 2E 30 33 " +
                    "37 02 09 00 00 31 2E 54 36 30 2E 30 33 37 02 09 " +
                    "00 00 31 2E 54 36 30 2E 30 33 37 02 09 00 00 31 " +
                    "2E 54 36 30 2E 30 33 36 02 09 00 00 31 2E 54 36 " +
                    "30 2E 30 33 36 02 09 00 00 31 2E 54 36 30 2E 30 " +
                    "33 36 02 09 00 00 31 2E 54 36 30 2E 30 32 36 02 " +
                    "09 00 00 31 2E 54 36 30 2E 30 32 36 02 09 00 00 " +
                    "31 2E 54 36 30 2E 30 32 36 02 09 00 00 31 2E 54 " +
                    "36 30 2E 30 32 35 02 09 00 00 31 2E 54 36 30 2E " +
                    "30 32 35 02 09 00 00 31 2E 54 36 30 2E 30 32 35 " +
                    "02 09 00 00 31 2E 54 36 30 2E 30 32 34 02 09 00 " +
                    "00 31 2E 54 36 30 2E 30 32 34 02 09 00 00 31 2E " +
                    "54 36 30 2E 30 32 34 02 09 00 00 31 2E 54 36 30 " +
                    "2E 30 31 34 02 09 00 00 31 2E 54 36 30 2E 30 31 " +
                    "34 02 09 00 00 31 2E 54 36 30 2E 30 31 34 02 09 " +
                    "00 00 31 2E 54 36 30 2E 30 31 33 02 09 00 00 31 " +
                    "2E 54 36 30 2E 30 31 33 02 09 00 00 31 2E 54 36 " +
                    "30 2E 30 31 33 02 09 00 00 31 2E 54 36 30 2E 30 " +
                    "31 32 02 09 00 00 31 2E 54 36 30 2E 30 31 32 02 " +
                    "09 00 00 31 2E 54 36 30 2E 30 31 32 02 09 00 00 " +
                    "31 2E 54 36 30 2E 30 30 32 02 09 00 00 31 2E 54 " +
                    "36 30 2E 30 30 32 02 09 00 00 31 2E 54 36 30 2E " +
                    "30 30 32 02 09 00 00 31 2E 54 36 30 2E 30 30 31 " +
                    "02 09 00 00 31 2E 54 36 30 2E 30 30 31 02 09 00 " +
                    "00 31 2E 54 36 30 2E 30 30 31 02 09 00 00 31 2E " +
                    "54 32 30 2E 31 37 32 02 09 00 00 31 2E 54 32 30 " +
                    "2E 31 37 32 02 09 00 00 31 2E 54 32 30 2E 31 37 " +
                    "32 02 09 00 00 31 2E 54 32 30 2E 31 36 32 02 09 " +
                    "00 00 31 2E 54 32 30 2E 31 36 32 02 09 00 00 31 " +
                    "2E 54 32 30 2E 31 36 32 02 09 00 00 31 2E 54 32 " +
                    "30 2E 31 36 31 02 09 00 00 31 2E 54 32 30 2E 31 " +
                    "36 31 02 09 00 00 31 2E 54 32 30 2E 31 36 31 02 " +
                    "09 00 00 31 2E 54 32 30 2E 31 36 30 02 09 00 00 " +
                    "31 2E 54 32 30 2E 31 36 30 02 09 00 00 31 2E 54 " +
                    "32 30 2E 31 36 30 02 09 00 00 31 2E 54 32 30 2E " +
                    "31 35 30 02 09 00 00 31 2E 54 32 30 2E 31 35 30 " +
                    "02 09 00 00 31 2E 54 32 30 2E 31 35 30 02 09 00 " +
                    "00 31 2E 54 32 30 2E 31 34 39 02 09 00 00 31 2E " +
                    "54 32 30 2E 31 34 39 02 09 00 00 31 2E 54 32 30 " +
                    "2E 31 34 39 02 09 00 00 31 2E 54 32 30 2E 31 34 " +
                    "38 02 09 00 00 31 2E 54 32 30 2E 31 34 38 02 09 " +
                    "00 00 31 2E 54 32 30 2E 31 34 38 02 09 00 00 31 " +
                    "2E 54 32 30 2E 31 33 38 02 09 00 00 31 2E 54 32 " +
                    "30 2E 31 33 38 02 09 00 00 31 2E 54 32 30 2E 31 " +
                    "33 38 02 09 00 00 31 2E 54 32 30 2E 31 33 37 02 " +
                    "09 00 00 31 2E 54 32 30 2E 31 33 37 02 09 00 00 " +
                    "31 2E 54 32 30 2E 31 33 37 02 09 00 00 31 2E 54 " +
                    "32 30 2E 31 33 36 02 09 00 00 31 2E 54 32 30 2E " +
                    "31 33 36 02 09 00 00 31 2E 54 32 30 2E 31 33 36 " +
                    "02 09 00 00 31 2E 54 32 30 2E 31 32 36 02 09 00 " +
                    "00 31 2E 54 32 30 2E 31 32 36 02 09 00 00 31 2E " +
                    "54 32 30 2E 31 32 36 02 09 00 00 31 2E 54 32 30 " +
                    "2E 31 32 35 02 09 00 00 31 2E 54 32 30 2E 31 32 " +
                    "35 02 09 00 00 31 2E 54 32 30 2E 31 32 35 02 09 " +
                    "00 00 31 2E 54 32 30 2E 31 32 34 02 09 00 00 31 " +
                    "2E 54 32 30 2E 31 32 34 02 09 00 00 31 2E 54 32 " +
                    "30 2E 31 32 34 02 09 00 00 31 2E 54 32 30 2E 31 " +
                    "31 34 02 09 00 00 31 2E 54 32 30 2E 31 31 34 02 " +
                    "09 00 00 31 2E 54 32 30 2E 31 31 34 02 09 00 00 " +
                    "31 2E 54 32 30 2E 31 31 33 02 09 00 00 31 2E 54 " +
                    "32 30 2E 31 31 33 02 09 00 00 31 2E 54 32 30 2E " +
                    "31 31 33 02 09 00 00 31 2E 54 32 30 2E 31 31 32 " +
                    "02 09 00 00 31 2E 54 32 30 2E 31 31 32 02 09 00 " +
                    "00 31 2E 54 32 30 2E 31 31 32 02 09 00 00 31 2E " +
                    "54 32 30 2E 31 30 32 02 09 00 00 31 2E 54 32 30 " +
                    "2E 31 30 32 02 09 00 00 31 2E 54 32 30 2E 31 30 " +
                    "32 02 09 00 00 31 2E 54 32 30 2E 31 30 31 02 09 " +
                    "00 00 31 2E 54 32 30 2E 31 30 31 02 09 00 00 31 " +
                    "2E 54 32 30 2E 31 30 31 02 09 00 00 31 2E 54 32 " +
                    "30 2E 31 30 30 02 09 00 00 31 2E 54 32 30 2E 31 " +
                    "30 30 02 09 00 00 31 2E 54 32 30 2E 31 30 30 02 " +
                    "09 00 00 31 2E 54 32 30 2E 30 39 30 02 09 00 00 " +
                    "31 2E 54 32 30 2E 30 39 30 02 09 00 00 31 2E 54 " +
                    "32 30 2E 30 39 30 02 09 00 00 31 2E 54 32 30 2E " +
                    "30 38 39 02 09 00 00 31 2E 54 32 30 2E 30 38 39 " +
                    "02 09 00 00 31 2E 54 32 30 2E 30 38 39 02 09 00 " +
                    "00 31 2E 54 32 30 2E 30 38 38 02 09 00 00 31 2E " +
                    "54 32 30 2E 30 38 38 02 09 00 00 31 2E 54 32 30 " +
                    "2E 30 38 38 02 09 00 00 31 2E 54 32 30 2E 30 37 " +
                    "38 02 09 00 00 31 2E 54 32 30 2E 30 37 38 02 09 " +
                    "00 00 31 2E 54 32 30 2E 30 37 38 02 09 00 00 31 " +
                    "2E 54 32 30 2E 30 37 37 02 09 00 00 31 2E 54 32 " +
                    "30 2E 30 37 37 02 09 00 00 31 2E 54 32 30 2E 30 " +
                    "37 37 02 09 00 00 31 2E 54 32 30 2E 30 37 36 02 " +
                    "09 00 00 31 2E 54 32 30 2E 30 37 36 02 09 00 00 " +
                    "31 2E 54 32 30 2E 30 37 36 02 09 00 00 31 2E 54 " +
                    "32 30 2E 30 36 36 02 09 00 00 31 2E 54 32 30 2E " +
                    "30 36 36 02 09 00 00 31 2E 54 32 30 2E 30 36 36 " +
                    "02 09 00 00 31 2E 54 32 30 2E 30 36 35 02 09 00 " +
                    "00 31 2E 54 32 30 2E 30 36 35 02 09 00 00 31 2E " +
                    "54 32 30 2E 30 36 35 02 09 00 00 31 2E 54 32 30 " +
                    "2E 30 36 34 02 09 00 00 31 2E 54 32 30 2E 30 36 " +
                    "34 02 09 00 00 31 2E 54 32 30 2E 30 36 34 02 09 " +
                    "00 00 31 2E 54 32 30 2E 30 35 34 02 09 00 00 31 " +
                    "2E 54 32 30 2E 30 35 34 02 09 00 00 31 2E 54 32 " +
                    "30 2E 30 35 34 02 09 00 00 31 2E 54 32 30 2E 30 " +
                    "35 33 02 09 00 00 31 2E 54 32 30 2E 30 35 33 02 " +
                    "09 00 00 31 2E 54 32 30 2E 30 35 33 02 09 00 00 " +
                    "31 2E 54 32 30 2E 30 35 32 02 09 00 00 31 2E 54 " +
                    "32 30 2E 30 35 32 02 09 00 00 31 2E 54 32 30 2E " +
                    "30 35 32 02 09 00 00 31 2E 54 32 30 2E 30 34 32 " +
                    "02 09 00 00 31 2E 54 32 30 2E 30 34 32 02 09 00 " +
                    "00 31 2E 54 32 30 2E 30 34 32 02 09 00 00 31 2E " +
                    "54 32 30 2E 30 34 31 02 09 00 00 31 2E 54 32 30 " +
                    "2E 30 34 31 02 09 00 00 31 2E 54 32 30 2E 30 34 " +
                    "31 02 09 00 00 31 2E 54 32 30 2E 30 34 30 02 09 " +
                    "00 00 31 2E 54 32 30 2E 30 34 30 02 09 00 00 31 " +
                    "2E 54 32 30 2E 30 34 30 02 09 00 00 31 2E 54 32 " +
                    "30 2E 30 33 30 02 09 00 00 31 2E 54 32 30 2E 30 " +
                    "33 30 02 09 00 00 31 2E 54 32 30 2E 30 33 30 02 " +
                    "09 00 00 31 2E 54 32 30 2E 30 32 39 02 09 00 00 " +
                    "31 2E 54 32 30 2E 30 32 39 02 09 00 00 31 2E 54 " +
                    "32 30 2E 30 32 39 02 09 00 00 31 2E 54 32 30 2E " +
                    "30 32 38 02 09 00 00 31 2E 54 32 30 2E 30 32 38 " +
                    "02 09 00 00 31 2E 54 32 30 2E 30 32 38 02 09 00 " +
                    "00 31 2E 54 32 30 2E 30 31 38 02 09 00 00 31 2E " +
                    "54 32 30 2E 30 31 38 02 09 00 00 31 2E 54 32 30 " +
                    "2E 30 31 38 02 09 00 00 31 2E 54 32 30 2E 30 31 " +
                    "37 02 09 00 00 31 2E 54 32 30 2E 30 31 37 02 09 " +
                    "00 00 31 2E 54 32 30 2E 30 31 37 02 09 00 00 31 " +
                    "2E 54 32 30 2E 30 31 36 02 09 00 00 31 2E 54 32 " +
                    "30 2E 30 31 36 02 09 00 00 31 2E 54 32 30 2E 30 " +
                    "31 36 02 09 00 00 31 2E 54 32 30 2E 30 30 36 02 " +
                    "09 00 00 31 2E 54 32 30 2E 30 30 36 02 09 00 00 " +
                    "31 2E 54 32 30 2E 30 30 36 02 09 00 00 31 2E 54 " +
                    "32 30 2E 30 30 35 02 09 00 00 31 2E 54 32 30 2E " +
                    "30 30 35 02 09 00 00 31 2E 54 32 30 2E 30 30 35 " +
                    "02 09 00 00 31 2E 54 32 30 2E 30 30 34 02 09 00 " +
                    "00 31 2E 54 32 30 2E 30 30 34 02 09 00 00 31 2E " +
                    "54 32 30 2E 30 30 34 02 09 00 00 31 2E 54 32 30 " +
                    "2E 30 30 37 02 09 00 00 31 2E 54 32 30 2E 30 30 " +
                    "37 02 09 00 00 31 2E 54 32 30 2E 30 30 37 02 09 " +
                    "00 00 31 2E 54 32 30 2E 30 30 38 02 09 00 00 31 " +
                    "2E 54 32 30 2E 30 30 38 02 09 00 00 31 2E 54 32 " +
                    "30 2E 30 30 38 02 09 00 00 31 2E 54 32 30 2E 30 " +
                    "30 39 02 09 00 00 31 2E 54 32 30 2E 30 30 39 02 " +
                    "09 00 00 31 2E 54 32 30 2E 30 30 39 02 09 00 00 " +
                    "31 2E 54 32 30 2E 30 31 39 02 09 00 00 31 2E 54 " +
                    "32 30 2E 30 31 39 02 09 00 00 31 2E 54 32 30 2E " +
                    "30 31 39 02 09 00 00 31 2E 54 32 30 2E 30 32 30 " +
                    "02 09 00 00 31 2E 54 32 30 2E 30 32 30 02 09 00 " +
                    "00 31 2E 54 32 30 2E 30 32 30 02 09 00 00 31 2E " +
                    "54 32 30 2E 30 32 31 02 09 00 00 31 2E 54 32 30 " +
                    "2E 30 32 31 02 09 00 00 31 2E 54 32 30 2E 30 32 " +
                    "31 02 09 00 00 31 2E 54 32 30 2E 30 33 31 02 09 " +
                    "00 00 31 2E 54 32 30 2E 30 33 31 02 09 00 00 31 " +
                    "2E 54 32 30 2E 30 33 31 02 09 00 00 31 2E 54 32 " +
                    "30 2E 30 33 32 02 09 00 00 31 2E 54 32 30 2E 30 " +
                    "33 32 02 09 00 00 31 2E 54 32 30 2E 30 33 32 02 " +
                    "09 00 00 31 2E 54 32 30 2E 30 33 33 02 09 00 00 " +
                    "31 2E 54 32 30 2E 30 33 33 02 09 00 00 31 2E 54 " +
                    "32 30 2E 30 33 33 02 09 00 00 31 2E 54 32 30 2E " +
                    "30 34 33 02 09 00 00 31 2E 54 32 30 2E 30 34 33 " +
                    "02 09 00 00 31 2E 54 32 30 2E 30 34 33 02 09 00 " +
                    "00 31 2E 54 32 30 2E 30 34 34 02 09 00 00 31 2E " +
                    "54 32 30 2E 30 34 34 02 09 00 00 31 2E 54 32 30 " +
                    "2E 30 34 34 02 09 00 00 31 2E 54 32 30 2E 30 34 " +
                    "35 02 09 00 00 31 2E 54 32 30 2E 30 34 35 02 09 " +
                    "00 00 31 2E 54 32 30 2E 30 34 35 02 09 00 00 31 " +
                    "2E 54 32 30 2E 30 35 35 02 09 00 00 31 2E 54 32 " +
                    "30 2E 30 35 35 02 09 00 00 31 2E 54 32 30 2E 30 " +
                    "35 35 02 09 00 00 31 2E 54 32 30 2E 30 35 36 02 " +
                    "09 00 00 31 2E 54 32 30 2E 30 35 36 02 09 00 00 " +
                    "31 2E 54 32 30 2E 30 35 36 02 09 00 00 31 2E 54 " +
                    "32 30 2E 30 35 37 02 09 00 00 31 2E 54 32 30 2E " +
                    "30 35 37 02 09 00 00 31 2E 54 32 30 2E 30 35 37 " +
                    "02 09 00 00 31 2E 54 32 30 2E 30 36 37 02 09 00 " +
                    "00 31 2E 54 32 30 2E 30 36 37 02 09 00 00 31 2E " +
                    "54 32 30 2E 30 36 37 02 09 00 00 31 2E 54 32 30 " +
                    "2E 30 36 38 02 09 00 00 31 2E 54 32 30 2E 30 36 " +
                    "38 02 09 00 00 31 2E 54 32 30 2E 30 36 38 02 09 " +
                    "00 00 31 2E 54 32 30 2E 30 36 39 02 09 00 00 31 " +
                    "2E 54 32 30 2E 30 36 39 02 09 00 00 31 2E 54 32 " +
                    "30 2E 30 36 39 02 09 00 00 31 2E 54 32 30 2E 30 " +
                    "37 39 02 09 00 00 31 2E 54 32 30 2E 30 37 39 02 " +
                    "09 00 00 31 2E 54 32 30 2E 30 37 39 02 09 00 00 " +
                    "31 2E 54 32 30 2E 30 38 30 02 09 00 00 31 2E 54 " +
                    "32 30 2E 30 38 30 02 09 00 00 31 2E 54 32 30 2E " +
                    "30 38 30 02 09 00 00 31 2E 54 32 30 2E 30 38 31 " +
                    "02 09 00 00 31 2E 54 32 30 2E 30 38 31 02 09 00 " +
                    "00 31 2E 54 32 30 2E 30 38 31 02 09 00 00 31 2E " +
                    "54 32 30 2E 30 39 31 02 09 00 00 31 2E 54 32 30 " +
                    "2E 30 39 31 02 09 00 00 31 2E 54 32 30 2E 30 39 " +
                    "31 02 09 00 00 31 2E 54 32 30 2E 30 39 32 02 09 " +
                    "00 00 31 2E 54 32 30 2E 30 39 32 02 09 00 00 31 " +
                    "2E 54 32 30 2E 30 39 32 02 09 00 00 31 2E 54 32 " +
                    "30 2E 30 39 33 02 09 00 00 31 2E 54 32 30 2E 30 " +
                    "39 33 02 09 00 00 31 2E 54 32 30 2E 30 39 33 02 " +
                    "09 00 00 31 2E 54 32 30 2E 31 30 33 02 09 00 00 " +
                    "31 2E 54 32 30 2E 31 30 33 02 09 00 00 31 2E 54 " +
                    "32 30 2E 31 30 33 02 09 00 00 31 2E 54 32 30 2E " +
                    "31 30 34 02 09 00 00 31 2E 54 32 30 2E 31 30 34 " +
                    "02 09 00 00 31 2E 54 32 30 2E 31 30 34 02 09 00 " +
                    "00 31 2E 54 32 30 2E 31 30 35 02 09 00 00 31 2E " +
                    "54 32 30 2E 31 30 35 02 09 00 00 31 2E 54 32 30 " +
                    "2E 31 30 35 02 09 00 00 31 2E 54 32 30 2E 31 31 " +
                    "35 02 09 00 00 31 2E 54 32 30 2E 31 31 35 02 09 " +
                    "00 00 31 2E 54 32 30 2E 31 31 35 02 09 00 00 31 " +
                    "2E 54 32 30 2E 31 31 36 02 09 00 00 31 2E 54 32 " +
                    "30 2E 31 31 36 02 09 00 00 31 2E 54 32 30 2E 31 " +
                    "31 36 02 09 00 00 31 2E 54 32 30 2E 31 31 37 02 " +
                    "09 00 00 31 2E 54 32 30 2E 31 31 37 02 09 00 00 " +
                    "31 2E 54 32 30 2E 31 31 37 02 09 00 00 31 2E 54 " +
                    "32 30 2E 31 32 37 02 09 00 00 31 2E 54 32 30 2E " +
                    "31 32 37 02 09 00 00 31 2E 54 32 30 2E 31 32 37 " +
                    "02 09 00 00 31 2E 54 32 30 2E 31 32 38 02 09 00 " +
                    "00 31 2E 54 32 30 2E 31 32 38 02 09 00 00 31 2E " +
                    "54 32 30 2E 31 32 38 02 09 00 00 31 2E 54 32 30 " +
                    "2E 31 32 39 02 09 00 00 31 2E 54 32 30 2E 31 32 " +
                    "39 02 09 00 00 31 2E 54 32 30 2E 31 32 39 02 09 " +
                    "00 00 31 2E 54 32 30 2E 31 33 39 02 09 00 00 31 " +
                    "2E 54 32 30 2E 31 33 39 02 09 00 00 31 2E 54 32 " +
                    "30 2E 31 33 39 02 09 00 00 31 2E 54 32 30 2E 31 " +
                    "34 30 02 09 00 00 31 2E 54 32 30 2E 31 34 30 02 " +
                    "09 00 00 31 2E 54 32 30 2E 31 34 30 02 09 00 00 " +
                    "31 2E 54 32 30 2E 31 34 31 02 09 00 00 31 2E 54 " +
                    "32 30 2E 31 34 31 02 09 00 00 31 2E 54 32 30 2E " +
                    "31 34 31 02 09 00 00 31 2E 54 32 30 2E 31 35 31 " +
                    "02 09 00 00 31 2E 54 32 30 2E 31 35 31 02 09 00 " +
                    "00 31 2E 54 32 30 2E 31 35 31 02 09 00 00 31 2E " +
                    "54 32 30 2E 31 35 32 02 09 00 00 31 2E 54 32 30 " +
                    "2E 31 35 32 02 09 00 00 31 2E 54 32 30 2E 31 35 " +
                    "32 02 09 00 00 31 2E 54 32 30 2E 31 35 33 02 09 " +
                    "00 00 31 2E 54 32 30 2E 31 35 33 02 09 00 00 31 " +
                    "2E 54 32 30 2E 31 35 33 02 09 00 00 31 2E 54 32 " +
                    "30 2E 31 36 33 02 09 00 00 31 2E 54 32 30 2E 31 " +
                    "36 33 02 09 00 00 31 2E 54 32 30 2E 31 36 33 02 " +
                    "09 00 00 31 2E 54 32 30 2E 31 36 34 02 09 00 00 " +
                    "31 2E 54 32 30 2E 31 36 34 02 09 00 00 31 2E 54 " +
                    "32 30 2E 31 36 34 02 09 00 00 31 2E 54 32 30 2E " +
                    "31 36 35 02 09 00 00 31 2E 54 32 30 2E 31 36 35 " +
                    "02 09 00 00 31 2E 54 32 30 2E 31 36 35 02 09 00 " +
                    "00 31 2E 54 36 30 2E 30 30 33 02 09 00 00 31 2E " +
                    "54 36 30 2E 30 30 33 02 09 00 00 31 2E 54 36 30 " +
                    "2E 30 30 33 02 09 00 00 31 2E 54 36 30 2E 30 30 " +
                    "34 02 09 00 00 31 2E 54 36 30 2E 30 30 34 02 09 " +
                    "00 00 31 2E 54 36 30 2E 30 30 34 02 09 00 00 31 " +
                    "2E 54 36 30 2E 30 30 35 02 09 00 00 31 2E 54 36 " +
                    "30 2E 30 30 35 02 09 00 00 31 2E 54 36 30 2E 30 " +
                    "30 35 02 09 00 00 31 2E 54 36 30 2E 30 31 35 02 " +
                    "09 00 00 31 2E 54 36 30 2E 30 31 35 02 09 00 00 " +
                    "31 2E 54 36 30 2E 30 31 35 02 09 00 00 31 2E 54 " +
                    "36 30 2E 30 31 36 02 09 00 00 31 2E 54 36 30 2E " +
                    "30 31 36 02 09 00 00 31 2E 54 36 30 2E 30 31 36 " +
                    "02 09 00 00 31 2E 54 36 30 2E 30 31 37 02 09 00 " +
                    "00 31 2E 54 36 30 2E 30 31 37 02 09 00 00 31 2E " +
                    "54 36 30 2E 30 31 37 02 09 00 00 31 2E 54 36 30 " +
                    "2E 30 32 37 02 09 00 00 31 2E 54 36 30 2E 30 32 " +
                    "37 02 09 00 00 31 2E 54 36 30 2E 30 32 37 02 09 " +
                    "00 00 31 2E 54 36 30 2E 30 32 38 02 09 00 00 31 " +
                    "2E 54 36 30 2E 30 32 38 02 09 00 00 31 2E 54 36 " +
                    "30 2E 30 32 38 02 09 00 00 31 2E 54 36 30 2E 30 " +
                    "32 39 02 09 00 00 31 2E 54 36 30 2E 30 32 39 02 " +
                    "09 00 00 31 2E 54 36 30 2E 30 32 39 02 09 00 00 " +
                    "31 2E 54 36 30 2E 30 33 39 02 09 00 00 31 2E 54 " +
                    "36 30 2E 30 33 39 02 09 00 00 31 2E 54 36 30 2E " +
                    "30 33 39 02 09 00 00 31 2E 54 36 30 2E 30 34 30 " +
                    "02 09 00 00 31 2E 54 36 30 2E 30 34 30 02 09 00 " +
                    "00 31 2E 54 36 30 2E 30 34 30 02 09 00 00 31 2E " +
                    "54 36 30 2E 30 34 31 02 09 00 00 31 2E 54 36 30 " +
                    "2E 30 34 31 02 09 00 00 31 2E 54 36 30 2E 30 34 " +
                    "31 02 09 00 00 31 2E 54 36 30 2E 30 35 31 02 09 " +
                    "00 00 31 2E 54 36 30 2E 30 35 31 02 09 00 00 31 " +
                    "2E 54 36 30 2E 30 35 31 02 09 00 00 31 2E 54 36 " +
                    "30 2E 30 35 32 02 09 00 00 31 2E 54 36 30 2E 30 " +
                    "35 32 02 09 00 00 31 2E 54 36 30 2E 30 35 32 02 " +
                    "09 00 00 31 2E 54 36 30 2E 30 35 33 02 09 00 00 " +
                    "31 2E 54 36 30 2E 30 35 33 02 09 00 00 31 2E 54 " +
                    "36 30 2E 30 35 33 02 09 00 00 31 2E 54 36 30 2E " +
                    "30 35 36 02 09 00 00 31 2E 54 36 30 2E 30 35 36 " +
                    "02 09 00 00 31 2E 54 36 30 2E 30 35 36 02 09 00 " +
                    "00 31 2E 54 36 30 2E 30 35 35 02 09 00 00 31 2E " +
                    "54 36 30 2E 30 35 35 02 09 00 00 31 2E 54 36 30 " +
                    "2E 30 35 35 02 09 00 00 31 2E 54 36 30 2E 30 35 " +
                    "34 02 09 00 00 31 2E 54 36 30 2E 30 35 34 02 09 " +
                    "00 00 31 2E 54 36 30 2E 30 35 34 02 09 00 00 31 " +
                    "2E 54 36 30 2E 30 34 34 02 09 00 00 31 2E 54 36 " +
                    "30 2E 30 34 34 02 09 00 00 31 2E 54 36 30 2E 30 " +
                    "34 34 02 09 00 00 31 2E 54 36 30 2E 30 34 33 02 " +
                    "09 00 00 31 2E 54 36 30 2E 30 34 33 02 09 00 00 " +
                    "31 2E 54 36 30 2E 30 34 33 02 09 00 00 31 2E 54 " +
                    "36 30 2E 30 34 32 02 09 00 00 31 2E 54 36 30 2E " +
                    "30 34 32 02 09 00 00 31 2E 54 36 30 2E 30 34 32 " +
                    "02 09 00 00 31 2E 54 36 30 2E 30 33 32 02 09 00 " +
                    "00 31 2E 54 36 30 2E 30 33 32 02 09 00 00 31 2E " +
                    "54 36 30 2E 30 33 32 02 09 00 00 31 2E 54 36 30 " +
                    "2E 30 33 31 02 09 00 00 31 2E 54 36 30 2E 30 33 " +
                    "31 02 09 00 00 31 2E 54 36 30 2E 30 33 31 02 09 " +
                    "00 00 31 2E 54 36 30 2E 30 33 30 02 09 00 00 31 " +
                    "2E 54 36 30 2E 30 33 30 02 09 00 00 31 2E 54 36 " +
                    "30 2E 30 33 30 02 09 00 00 31 2E 54 36 30 2E 30 " +
                    "32 30 02 09 00 00 31 2E 54 36 30 2E 30 32 30 02 " +
                    "09 00 00 31 2E 54 36 30 2E 30 32 30 02 09 00 00 " +
                    "31 2E 54 36 30 2E 30 31 39 02 09 00 00 31 2E 54 " +
                    "36 30 2E 30 31 39 02 09 00 00 31 2E 54 36 30 2E " +
                    "30 31 39 02 09 00 00 31 2E 54 36 30 2E 30 31 38 " +
                    "02 09 00 00 31 2E 54 36 30 2E 30 31 38 02 09 00 " +
                    "00 31 2E 54 36 30 2E 30 31 38 02 09 00 00 31 2E " +
                    "54 36 30 2E 30 30 38 02 09 00 00 31 2E 54 36 30 " +
                    "2E 30 30 38 02 09 00 00 31 2E 54 36 30 2E 30 30 " +
                    "38 02 09 00 00 31 2E 54 36 30 2E 30 30 37 02 09 " +
                    "00 00 31 2E 54 36 30 2E 30 30 37 02 09 00 00 31 " +
                    "2E 54 36 30 2E 30 30 37 02 09 00 00 31 2E 54 36 " +
                    "30 2E 30 30 36 02 09 00 00 31 2E 54 36 30 2E 30 " +
                    "30 36 02 09 00 00 31 2E 54 36 30 2E 30 30 36 02 " +
                    "09 00 00 31 2E 54 32 30 2E 31 36 38 02 09 00 00 " +
                    "31 2E 54 32 30 2E 31 36 38 02 09 00 00 31 2E 54 " +
                    "32 30 2E 31 36 38 02 09 00 00 31 2E 54 32 30 2E " +
                    "31 36 37 02 09 00 00 31 2E 54 32 30 2E 31 36 37 " +
                    "02 09 00 00 31 2E 54 32 30 2E 31 36 37 02 09 00 " +
                    "00 31 2E 54 32 30 2E 31 36 36 02 09 00 00 31 2E " +
                    "54 32 30 2E 31 36 36 02 09 00 00 31 2E 54 32 30 " +
                    "2E 31 36 36 02 09 00 00 31 2E 54 32 30 2E 31 35 " +
                    "36 02 09 00 00 31 2E 54 32 30 2E 31 35 36 02 09 " +
                    "00 00 31 2E 54 32 30 2E 31 35 36 02 09 00 00 31 " +
                    "2E 54 32 30 2E 31 35 35 02 09 00 00 31 2E 54 32 " +
                    "30 2E 31 35 35 02 09 00 00 31 2E 54 32 30 2E 31 " +
                    "35 35 02 09 00 00 31 2E 54 32 30 2E 31 35 34 02 " +
                    "09 00 00 31 2E 54 32 30 2E 31 35 34 02 09 00 00 " +
                    "31 2E 54 32 30 2E 31 35 34 02 09 00 00 31 2E 54 " +
                    "32 30 2E 31 34 34 02 09 00 00 31 2E 54 32 30 2E " +
                    "31 34 34                                       ";

            String record_0x03C =
                    "         3C 00 62 05 02 09 00 00 31 2E 54 32 30 " +
                    "2E 31 34 34 02 09 00 00 31 2E 54 32 30 2E 31 34 " +
                    "33 02 09 00 00 31 2E 54 32 30 2E 31 34 33 02 09 " +
                    "00 00 31 2E 54 32 30 2E 31 34 33 02 09 00 00 31 " +
                    "2E 54 32 30 2E 31 34 32 02 09 00 00 31 2E 54 32 " +
                    "30 2E 31 34 32 02 09 00 00 31 2E 54 32 30 2E 31 " +
                    "34 32 02 09 00 00 31 2E 54 32 30 2E 31 33 32 02 " +
                    "09 00 00 31 2E 54 32 30 2E 31 33 32 02 09 00 00 " +
                    "31 2E 54 32 30 2E 31 33 32 02 09 00 00 31 2E 54 " +
                    "32 30 2E 31 33 31 02 09 00 00 31 2E 54 32 30 2E " +
                    "31 33 31 02 09 00 00 31 2E 54 32 30 2E 31 33 31 " +
                    "02 09 00 00 31 2E 54 32 30 2E 31 33 30 02 09 00 " +
                    "00 31 2E 54 32 30 2E 31 33 30 02 09 00 00 31 2E " +
                    "54 32 30 2E 31 33 30 02 09 00 00 31 2E 54 32 30 " +
                    "2E 31 32 30 02 09 00 00 31 2E 54 32 30 2E 31 32 " +
                    "30 02 09 00 00 31 2E 54 32 30 2E 31 32 30 02 09 " +
                    "00 00 31 2E 54 32 30 2E 31 31 39 02 09 00 00 31 " +
                    "2E 54 32 30 2E 31 31 39 02 09 00 00 31 2E 54 32 " +
                    "30 2E 31 31 39 02 09 00 00 31 2E 54 32 30 2E 31 " +
                    "31 38 02 09 00 00 31 2E 54 32 30 2E 31 31 38 02 " +
                    "09 00 00 31 2E 54 32 30 2E 31 31 38 02 09 00 00 " +
                    "31 2E 54 32 30 2E 31 30 38 02 09 00 00 31 2E 54 " +
                    "32 30 2E 31 30 38 02 09 00 00 31 2E 54 32 30 2E " +
                    "31 30 38 02 09 00 00 31 2E 54 32 30 2E 31 30 37 " +
                    "02 09 00 00 31 2E 54 32 30 2E 31 30 37 02 09 00 " +
                    "00 31 2E 54 32 30 2E 31 30 37 02 09 00 00 31 2E " +
                    "54 32 30 2E 31 30 36 02 09 00 00 31 2E 54 32 30 " +
                    "2E 31 30 36 02 09 00 00 31 2E 54 32 30 2E 31 30 " +
                    "36 02 09 00 00 31 2E 54 32 30 2E 30 39 36 02 09 " +
                    "00 00 31 2E 54 32 30 2E 30 39 36 02 09 00 00 31 " +
                    "2E 54 32 30 2E 30 39 36 02 09 00 00 31 2E 54 32 " +
                    "30 2E 30 39 35 02 09 00 00 31 2E 54 32 30 2E 30 " +
                    "39 35 02 09 00 00 31 2E 54 32 30 2E 30 39 35 02 " +
                    "09 00 00 31 2E 54 32 30 2E 30 39 34 02 09 00 00 " +
                    "31 2E 54 32 30 2E 30 39 34 02 09 00 00 31 2E 54 " +
                    "32 30 2E 30 39 34 02 09 00 00 31 2E 54 32 30 2E " +
                    "30 38 34 02 09 00 00 31 2E 54 32 30 2E 30 38 34 " +
                    "02 09 00 00 31 2E 54 32 30 2E 30 38 34 02 09 00 " +
                    "00 31 2E 54 32 30 2E 30 38 33 02 09 00 00 31 2E " +
                    "54 32 30 2E 30 38 33 02 09 00 00 31 2E 54 32 30 " +
                    "2E 30 38 33 02 09 00 00 31 2E 54 32 30 2E 30 38 " +
                    "32 02 09 00 00 31 2E 54 32 30 2E 30 38 32 02 09 " +
                    "00 00 31 2E 54 32 30 2E 30 38 32 02 09 00 00 31 " +
                    "2E 54 32 30 2E 30 37 32 02 09 00 00 31 2E 54 32 " +
                    "30 2E 30 37 32 02 09 00 00 31 2E 54 32 30 2E 30 " +
                    "37 32 02 09 00 00 31 2E 54 32 30 2E 30 37 31 02 " +
                    "09 00 00 31 2E 54 32 30 2E 30 37 31 02 09 00 00 " +
                    "31 2E 54 32 30 2E 30 37 31 02 09 00 00 31 2E 54 " +
                    "32 30 2E 30 37 30 02 09 00 00 31 2E 54 32 30 2E " +
                    "30 37 30 02 09 00 00 31 2E 54 32 30 2E 30 37 30 " +
                    "02 09 00 00 31 2E 54 32 30 2E 30 36 30 02 09 00 " +
                    "00 31 2E 54 32 30 2E 30 36 30 02 09 00 00 31 2E " +
                    "54 32 30 2E 30 36 30 02 09 00 00 31 2E 54 32 30 " +
                    "2E 30 35 39 02 09 00 00 31 2E 54 32 30 2E 30 35 " +
                    "39 02 09 00 00 31 2E 54 32 30 2E 30 35 39 02 09 " +
                    "00 00 31 2E 54 32 30 2E 30 35 38 02 09 00 00 31 " +
                    "2E 54 32 30 2E 30 35 38 02 09 00 00 31 2E 54 32 " +
                    "30 2E 30 35 38 02 09 00 00 31 2E 54 32 30 2E 30 " +
                    "34 38 02 09 00 00 31 2E 54 32 30 2E 30 34 38 02 " +
                    "09 00 00 31 2E 54 32 30 2E 30 34 38 02 09 00 00 " +
                    "31 2E 54 32 30 2E 30 34 37 02 09 00 00 31 2E 54 " +
                    "32 30 2E 30 34 37 02 09 00 00 31 2E 54 32 30 2E " +
                    "30 34 37 02 09 00 00 31 2E 54 32 30 2E 30 34 36 " +
                    "02 09 00 00 31 2E 54 32 30 2E 30 34 36 02 09 00 " +
                    "00 31 2E 54 32 30 2E 30 34 36 02 09 00 00 31 2E " +
                    "54 32 30 2E 30 33 36 02 09 00 00 31 2E 54 32 30 " +
                    "2E 30 33 36 02 09 00 00 31 2E 54 32 30 2E 30 33 " +
                    "36 02 09 00 00 31 2E 54 32 30 2E 30 33 35 02 09 " +
                    "00 00 31 2E 54 32 30 2E 30 33 35 02 09 00 00 31 " +
                    "2E 54 32 30 2E 30 33 35 02 09 00 00 31 2E 54 32 " +
                    "30 2E 30 33 34 02 09 00 00 31 2E 54 32 30 2E 30 " +
                    "33 34 02 09 00 00 31 2E 54 32 30 2E 30 33 34 02 " +
                    "09 00 00 31 2E 54 32 30 2E 30 32 34 02 09 00 00 " +
                    "31 2E 54 32 30 2E 30 32 34 02 09 00 00 31 2E 54 " +
                    "32 30 2E 30 32 34 02 09 00 00 31 2E 54 32 30 2E " +
                    "30 32 33 02 09 00 00 31 2E 54 32 30 2E 30 32 33 " +
                    "02 09 00 00 31 2E 54 32 30 2E 30 32 33 02 09 00 " +
                    "00 31 2E 54 32 30 2E 30 32 32 02 09 00 00 31 2E " +
                    "54 32 30 2E 30 32 32 02 09 00 00 31 2E 54 32 30 " +
                    "2E 30 32 32 02 09 00 00 31 2E 54 32 30 2E 30 31 " +
                    "32 02 09 00 00 31 2E 54 32 30 2E 30 31 32 02 09 " +
                    "00 00 31 2E 54 32 30 2E 30 31 32 02 09 00 00 31 " +
                    "2E 54 32 30 2E 30 31 31 02 09 00 00 31 2E 54 32 " +
                    "30 2E 30 31 31 02 09 00 00 31 2E 54 32 30 2E 30 " +
                    "31 31 02 09 00 00 31 2E 54 32 30 2E 30 31 30 02 " +
                    "09 00 00 31 2E 54 32 30 2E 30 31 30 02 09 00 00 " +
                    "31 2E 54 32 30 2E 30 31 30                     ";

            byte[] data1 = HexRead.ReadFromString(record_0x0018 + record_0x03C);
            RecordInputStream in1 = TestcaseRecordInputStream.Create(data1);
            NameRecord nr1 = new NameRecord(in1);
            assert_bug50244(nr1);

            byte[] data2 = nr1.Serialize();

            Assert.AreEqual(data1.Length, data2.Length);
            RecordInputStream in2 = TestcaseRecordInputStream.Create(data2);
            NameRecord nr2 = new NameRecord(in2);
            assert_bug50244(nr2);
        }

        private void assert_bug50244(NameRecord nr)
        {
            Assert.AreEqual("wDataGruppeSerie.", nr.NameText);
            Ptg[] ptg = nr.NameDefinition;
            Assert.AreEqual(1, ptg.Length);
            ArrayPtg arr = (ArrayPtg)ptg[0];
            Assert.AreEqual(696, arr.RowCount);
            Assert.AreEqual(1, arr.ColumnCount);
            Object[][] vals = arr.GetTokenArrayValues();
            Assert.AreEqual("1.T20.001", vals[0][0]);
            Assert.AreEqual("1.T20.010", vals[vals.Length - 1][0]);
        }
    }

}